// 引入vue 和 vuex
import Vue from 'vue'
import Vuex from 'vuex'
import getters from './getters'
// 1.安装插件
Vue.use(Vuex)
// 引入'./modules'下的所有以.js结尾的文件
const modulesFiles = require.context('./modules', true, /\.js$/)
// console.log(modulesFiles.keys(),'["./test.js"]'); 取出全部文件名并处理
const modules = modulesFiles.keys().reduce((modules, modulePath) => {
  // 取出文件名test
  const moduleName = modulePath.replace(/^\.\/(.*)\.\w+$/, '$1')
  // console.log(moduleName,modulePath,modules);
  const value = modulesFiles(modulePath)
  // console.log(value);
  // 模块名赋值
  modules[moduleName] = value.default
  return modules
}, {})
// 2.创建对象
const store = new Vuex.Store({
  modules,// 声明modules模块，每个模块有自己的作用域
  getters,
})
// 3.导出对象
export default store



// 分模块
// modules:{
//   a:{
//     state:{},
//     mutations:{},
//     actions:{},
//     getters:{}
//   }
//   b:{
//     state:{},
//     mutations:{},
//     getters:{},
//     actions:{}
//   }
// }
